// Package convert 提供了一组转换函数，用于将uint8类型的值转换为其他类型。
package convert

import (
	"errors"
	"math"
	"strconv"
)

// Uint8ToInt 将uint8类型的值转换为int类型，不进行溢出检查。
func Uint8ToInt(value uint8) (int, error) {
	return int(value), nil
}

// Uint8ToInt8 将uint8类型的值转换为int8类型，如果超出int8范围则返回错误。
func Uint8ToInt8(value uint8) (int8, error) {
	if value > math.MaxUint8 {
		return 0, errors.New("overflow occurred during conversion")
	}
	return int8(value), nil
}

// Uint8ToInt16 将uint8类型的值转换为int16类型，不进行溢出检查。
func Uint8ToInt16(value uint8) (int16, error) {
	return int16(value), nil
}

// Uint8ToInt32 将uint8类型的值转换为int32类型，不进行溢出检查。
func Uint8ToInt32(value uint8) (int32, error) {
	return int32(value), nil
}

// Uint8ToInt64 将uint8类型的值转换为int64类型，不进行溢出检查。
func Uint8ToInt64(value uint8) (int64, error) {
	return int64(value), nil
}

// Uint8ToUint 将uint8类型的值转换为uint类型，不进行溢出检查。
func Uint8ToUint(value uint8) (uint, error) {
	return uint(value), nil
}

// Uint8ToUint16 将uint8类型的值转换为uint16类型，不进行溢出检查。
func Uint8ToUint16(value uint8) (uint16, error) {
	return uint16(value), nil
}

// Uint8ToUint32 将uint8类型的值转换为uint32类型，不进行溢出检查。
func Uint8ToUint32(value uint8) (uint32, error) {
	return uint32(value), nil
}

// Uint8ToUint64 将uint8类型的值转换为uint64类型，不进行溢出检查。
func Uint8ToUint64(value uint8) (uint64, error) {
	return uint64(value), nil
}

// Uint8ToFloat32 将uint8类型的值转换为float32类型，不进行溢出检查。
func Uint8ToFloat32(value uint8) (float32, error) {
	return float32(value), nil
}

// Uint8ToFloat64 将uint8类型的值转换为float64类型，不进行溢出检查。
func Uint8ToFloat64(value uint8) (float64, error) {
	return float64(value), nil
}

// Uint8ToString 将uint8类型的值转换为字符串类型。
func Uint8ToString(value uint8) string {
	return strconv.FormatUint(uint64(value), 10)
}

// Uint8ToBool 将uint8类型的值转换为bool类型，非零值转换为true，零值转换为false。
func Uint8ToBool(value uint8) bool {
	return value != 0
}
